package org.eredlab.g4.rif.report.fcf;

import java.util.HashMap;

import org.eredlab.g4.rif.web.BaseAction;

/**
 * FlashReport样式配置对象
 * @author XiongChun
 * @since 2010-07-13
 * @see BaseAction
 */

//配置了一个图样式，可以将其看成css,这些基本信息的键名都是固定的，我们只能设置规定键名下的值而无法设置值！
//主要用于设置整个图表的属性！
public class GraphConfig extends HashMap {
	//设置基本的字体大小字体类型字体，以及边界的宽度！这些都是在new对象时默认的配置参数！
	public GraphConfig()
	{
		this.put("baseFont", "宋体");
		this.put("baseFontSize", "12");
		this.put("canvasBorderThickness", "1");
	}
	/**
	 * 设置主标题
	 * @param pCaption
	 */
	public void setCaption(String pCaption)
	{
		this.put("caption", pCaption);
	}
	
	/**
	 * 设置副标题
	 * @param pSubcaption
	 */
	public void setSubcaption(String pSubcaption){
		this.put("subcaption", pSubcaption);
	}
	
	/**
	 * 设置X坐标轴名称
	 * @param pXAxisName
	 */
	public void setXAxisName(String pXAxisName){
		this.put("xAxisName", pXAxisName);
	}
	
	/**
	 * 设置Y坐标轴名称
	 * @param pYAxisName
	 */
	public void setYAxisName(String pYAxisName){
		this.put("yAxisName", pYAxisName);
	}
	
	/**
	 * 设置字体
	 * @param pBaseFont
	 */
	public void setBaseFont(String pBaseFont){
		this.put("baseFont", pBaseFont);
	}
	
	/**
	 * 设置字体大小
	 * @param pBaseFontSize
	 */
	public void setBaseFontSize(String pBaseFontSize){
		this.put("baseFontSize", pBaseFontSize);
	}
	
	/**
	 * 设置数字值的前缀
	 * @param pNumberPrefix
	 */
	
	//主要用于区分数字代表的是什么而已！
	public void setNumberPrefix(String pNumberPrefix){
		this.put("numberPrefix", pNumberPrefix);
	}
	
	/**
	 * 设置细边框，这个边框指的是面板边框线而不是单个小图像的边框，单个小图像的边框在实体属性中设置！
	 * @param pCanvasBorderThickness
	 */
	public void setCanvasBorderThickness(Boolean pCanvasBorderThickness){
		this.put("canvasBorderThickness", pCanvasBorderThickness.booleanValue() ? "1" : "0");
	}
	
	/**
	 * 设置边框颜色,图版边框的颜色即坐标系边框颜色！
	 * @param pCanvasBorderColor
	 */
	public void setCanvasBorderColor(String pCanvasBorderColor){
		this.put("CanvasBorderColor", pCanvasBorderColor);
	}
	
	/**
	 * 设置是否图上显示分类名称，即产品实体的name属性的值是否显示，默认情况下是显示的！
	 * @param pCanvasBorderColor
	 */
	public void setShowNames(Boolean pShowNames){
		this.put("showNames", pShowNames.booleanValue() ? "1" : "0");
	}
	
	/**
	 * 设置是否显示数据，即在图像的上方是否显示当前产品的数据！
	 * @param pAreaBorderThickness
	 */
	public void setShowValues(Boolean pShowValues){
		this.put("showValues", pShowValues.booleanValue() ? "1" : "0");
	}
}
